package net.hn.hnms.biz.gasext.dws.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.hn.hnms.biz.api.safety.location.model.LeadVo;
import net.hn.hnms.biz.gasext.dws.domain.DwdRydwRyssHPo;
import net.hn.hnms.biz.gasext.dws.domain.RydwRyssPo;
import net.hn.hnms.biz.gasext.dws.domain.dto.DwdRydwRealTimeDataDto;
import net.hn.hnms.biz.gasext.dws.domain.vo.DwdRydwRealTimeDataVo;
import net.hn.hnms.biz.gasext.dws.domain.vo.DwdRydwRyssDVo;
import net.hn.hnms.sys.common.mybatis.core.page.PageQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@DS(value = "dwd")
public interface DwdRydwRyssHMapper extends BaseMapper<DwdRydwRyssHPo> {
    /**
     * 获取当前煤矿井下人数
     * @param orgCode
     * @return
     */
    Integer selectPersonNumberList(@Param("orgCode") String orgCode);

    /**
     * 获取井下领导入井信息
     * @param orgCode
     * @return
     */
    List<LeadVo> selectLeadPitInfo(@Param("orgCode") String orgCode);

    //查询轨迹
    RydwRyssPo selectTrail(@Param("staffCode") String staffCode, @Param("inTime") String inTime, @Param("orgCode") String mineCode);

    /**
     * 根据煤矿编码，查询实时数据
     * @param pageSize
     * @param pageNum
     * @param dto
     * @return
     */
    List<DwdRydwRealTimeDataVo> selectRealTimeDataList(@Param("pageSize") Integer pageSize,
                                                       @Param("pageNum") Integer pageNum,
                                                       @Param("mineCodeList") List<String> mineCodeList,
                                                       @Param("dto") DwdRydwRealTimeDataDto dto);

    /**
     * 获取当前煤矿特种作业人数
     * @param orgCode
     * @return
     */
    Integer selectSpecialNumberList(@Param("orgCode") String orgCode);

    /**
     * 查询最新的人员定位实时数据
     * @param mineCode
     * @param pageQuery
     * @return
     */
    List<DwdRydwRyssDVo> selectRyssListByMineCode(@Param("mineCode") String mineCode, @Param("pageQuery") PageQuery pageQuery, @Param("tzry") String tzry);

    /**
     * 根据煤矿编码 和人员卡编码列表 查询当前煤矿的最新数据列表
     * @param mineCode
     * @param jzbmList
     * @param pageQuery
     * @return
     */
    List<DwdRydwRyssDVo> selectRyssListByMineCodeAndJzbmList(@Param("mineCode") String mineCode, @Param("jzbmList") List<String> jzbmList, @Param("pageQuery") PageQuery pageQuery);

    /**
     * 获取实时表内人员信息
     * @param name
     * @param mineCode
     * @return
     */
    RydwRyssPo getTrailByName(@Param("name") String name, @Param("mineCode") String mineCode);
}
